perm filename LIES[DOC,AIL]18 blob
sn#327036 filedate 1978-01-13 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 This is a list of known bugs in the August 1976 Sail manual, AIM-289.
C00006 ENDMK
C⊗;
This is a list of known bugs in the August 1976 Sail manual, AIM-289.
PAGE DESCRIPTION
abstr. "varaiables" is a misspelling [JFR 10-22-76]
iiiL no period after LEAP (line 6 of paragraph) [LES 10-22-76]
162L "i.e" in the line "2. Recursive entry" [JFR 10-23-76]
1R "Nauer" for "Naur" (also References) [JFR 11-2-76]
22L,26L "disjunct" → "conjunct" [JMC 11-12-76]
31L line -9 "its" → "it's" [JMC 11-12-76]
162R The word PDA+'13 contains something other than indicated.
The parameter descriptor words actually start at PDA+'14,
but the way to find them is to follow the pointer in
the right half of PDA+7. [JFR 12-9-76]
9L Another restriction on SIMPLE procedures: They should not do
up-level addressing themselves (in addition to point 4.) unless
the user really understands what is going on with the stack.
It is possible to "screw up" without complaints from the compiler.
SIMPLE ought to mean "I know what I am doing, so let me do it.".
[JFR/DON 12-xx-76]
56L CRLF="('15 & '12)", not '12 & '15 [JFR 1-15-77]
10R It should be made clear that LET A=B; works even if
A is a reserved word. In particular, LET DEFINE=REDEFINE;
Also note that B can be any reserved
word except COMMENT. [COMMENT ALWAYS means "ignore through
the next semicolon".]
4R POLLING_POINTS is not a valid <require_spec> [WFW 1-21-77]
50R In FILEINFO, hidate2 occupies 3 bits [JFR 2-3-77]
152L CHNCDB and FILEINFO are defined everywhere except TENEX. [JFR 2-3-77]
65R A better way of getting around the array problem is as follows:
REQUIRE "⊂⊃<>" DELIMITERS;
DEFINE NewArray(type,name,bounds)=⊂
BEGIN
type ARRAY proxy bounds;
MEMORY[LOCATION(name)] ← MEMORY[LOCATION(proxy)];
MEMORY[LOCATION(proxy)] ← 0;
END⊃;
which hides all the hair of a poor facility and is perfectly general.
unlike the present scheme in the manual. A typical call would be:
RECORD_CLASS RC(STRING ARRAY SA);
RECORD_POINTER (RC) rp;
rp ← NEW_RECORD(RC);
NewArray(STRING,RC:SA[rp],[0:1,-2:3]); [MWK for KS 01-13-77]
27L DIV and MOD use integer divide and are meant as a "integer divide"
and "integer divide and remainder". This is NOT the real mod as
written in Knuth volume 1. In fact, MOD would better have been
names REM. [MWK 01-13-77]